package com.bwhx.eruler;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.junit.Test;

import com.bwhx.eruler.util.UtilFuns;

/**
 * 测试 POI
 * @author seawind
 *
 */
public class POITest {
	
	
	public static Log log = LogFactory.getLog(POITest.class);

	@Test
	// 解析info.xls
	public static void demo1() throws IOException{
		// 1、 工作薄 （打开Excel文件 ）
		HSSFWorkbook hssfWorkbook = new HSSFWorkbook(new FileInputStream("d:\\test.xls"));
		
		// 2、 指定读取哪个sheet
		HSSFSheet sheet = hssfWorkbook.getSheet("Sheet1");//通过名字获得sheet
		HSSFSheet sheet2 = hssfWorkbook.getSheetAt(0);// 获得第一个sheet
		
		// 3、 遍历sheet 获得每一行数据
		for (Row row : sheet2) {
			// 4、 获得row中每一格数据 
			for (Cell cell : row) {
				// 打印单元格数据 
				if(cell.getCellType() == Cell.CELL_TYPE_STRING){
					log.info(cell.getStringCellValue());
				}else if(cell.getCellType()==Cell.CELL_TYPE_NUMERIC){
					log.info(cell.getNumericCellValue());
				}
			}
			
		}
	}
	
	@Test
	// 生成Excel
	public static void demo2() throws FileNotFoundException, IOException{
		// 1、 工作薄 （Excel文档 ）
		HSSFWorkbook hssfWorkbook = new HSSFWorkbook(); // 新文档
		// 2、写一个sheet
		HSSFSheet sheet = hssfWorkbook.createSheet("测量数据");
		// 3、写row 行数据
		HSSFRow row = sheet.createRow(0); // 开始写第一行
		// 4、 写cell 单元格数据 
		row.createCell(0).setCellValue("新序号"); // 第一行 第一个单元格  姓名 
		row.createCell(1).setCellValue("原序号"); // 第一行 第二个单元格  年龄
		row.createCell(2).setCellValue("归属"); // 第一行 第二个单元格  年龄
		row.createCell(3).setCellValue("单位"); // 第一行 第二个单元格  年龄
		row.createCell(4).setCellValue("部门"); // 第一行 第二个单元格  年龄
		row.createCell(5).setCellValue("姓名"); // 第一行 第二个单元格  年龄
		row.createCell(6).setCellValue("性别"); // 第一行 第二个单元格  年龄
		row.createCell(7).setCellValue("身高"); // 第一行 第二个单元格  年龄
		row.createCell(8).setCellValue("头围"); // 第一行 第二个单元格  年龄
		row.createCell(9).setCellValue("领围"); // 第一行 第二个单元格  年龄
		row.createCell(10).setCellValue("净胸围"); // 第一行 第二个单元格  年龄
		row.createCell(11).setCellValue("中腰"); // 第一行 第二个单元格  年龄
		row.createCell(12).setCellValue("净腰围"); // 第一行 第二个单元格  年龄 
		row.createCell(13).setCellValue("净臀围"); // 第一行 第二个单元格  年龄
		row.createCell(14).setCellValue("裤长"); // 第一行 第二个单元格  年龄
		row.createCell(15).setCellValue("横档"); // 第一行 第二个单元格  年龄
		row.createCell(16).setCellValue("直档"); // 第一行 第二个单元格  年龄
		row.createCell(17).setCellValue("肩宽"); // 第一行 第二个单元格  年龄
		row.createCell(18).setCellValue("袖长"); // 第一行 第二个单元格  年龄
		row.createCell(19).setCellValue("前衣长"); // 第一行 第二个单元格  年龄
		row.createCell(20).setCellValue("鞋号"); // 第一行 第二个单元格  年龄
		row.createCell(21).setCellValue("自报或套穿上衣号型"); // 第一行 第二个单元格  年龄
		row.createCell(22).setCellValue("上衣附加"); // 第一行 第二个单元格  年龄
		row.createCell(23).setCellValue("自报下裤号型"); // 第一行 第二个单元格  年龄
		row.createCell(24).setCellValue("备注一"); // 第一行 第二个单元格  年龄
		row.createCell(25).setCellValue("备注二"); // 第一行 第二个单元格  年龄
		row.createCell(26).setCellValue("备注三"); // 第一行 第二个单元格  年龄
		row.createCell(27).setCellValue("体重Kg"); // 第一行 第二个单元格  年龄
		row.createCell(28).setCellValue("喜好合适"); // 第一行 第二个单元格  年龄
		row.createCell(29).setCellValue("喜好宽松"); // 第一行 第二个单元格  年龄
		row.createCell(30).setCellValue("喜好修身"); // 第一行 第二个单元格  年龄
		// 3、写row 行数据
		HSSFRow row1 = sheet.createRow(1); // 开始写第一行
		// 4、 写cell 单元格数据 
		row1.createCell(0).setCellValue("cuige"); // 第一行 第一个单元格  姓名 
		row1.createCell(1).setCellValue("28"); // 第一行 第二个单元格  年龄
				
		// 5、将Excel 保存到硬盘
		hssfWorkbook.write(new FileOutputStream("d:/test.xls"));
	}
	public static void main(String[] args) throws FileNotFoundException, IOException {
		demo2();
		demo1();
	}
}
